package com.njzxw.fs.commonutil.util;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

import java.util.List;

public class GsonUtil {

    /**
     * 将Json数据解析成相应的映射对象
     * @param jsonData
     * @param type
     * @return
     */
    public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
        Gson gson = new GsonBuilder().serializeNulls().create();
        T result = gson.fromJson(jsonData, type);
        return result;
    }

    /**
     * 将Json数组解析成相应的映射对象列表
     * @param jsonData
     * @param type
     * @return
     */
    public static <T> List<T> parseJsonArrayWithGson(String jsonData,
                                                     Class<T> type) {
        Gson gson = new GsonBuilder().serializeNulls().create();
        List<T> result = gson.fromJson(jsonData, new TypeToken<List<T>>() {
        }.getType());
        return result;
    }

    /**
     * 将对象转化成json字符串
     * @param object
     * @return
     */
    public static String parseObjectToJsonString(Object object){
        return new GsonBuilder().serializeNulls().create().toJson(object);
    }

}
